iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 9
1
Modern Web

試著把切版專案升級到 gulp4.0 吧系列 第 9

[試著把切版專案升級到 gulp4.0 吧] Day09 第一個插件:以複製檔案為例,談路徑表示方式 globs

  • 分享至 

  • xImage
  •  

Gulp 官方文件是這麼形容 globs 的:

A glob is a string of literal and/or wildcard characters used to match filepaths. Globbing is the act of locating files on a filesystem using one or more globs.

glob 是由普通字符和 / 或通配字符組成的字符串,用于匹配文件路徑。可以利用一個或多個 glob 在文件系統中定位文件。

也就是說,globs 這個字符串,主要用途就是表示檔案的路徑。在前面的 src()dest() API 中,第一個參數就是用來放 globs 這個代表檔案路徑的字符串。

類似於正則表達式,globs 也有一些特殊的匹配符號。以下簡單列出常用的符號。

轉義 \\

* 星號本來是有其他匹配意義的,但透過 \\ 兩個斜線就變成只是個星號而已。

'glob_with_uncommon_\\*_character.js'

在單一字串中匹配任意數量 *

* 星號可以用來匹配該目錄下所有的檔名。例如,*.js 就可以匹配到 index.js,但無法匹配到 all.cssscript/main.js

'*.js'

在多個字串中匹配任意數量 **

如果說 * 經常用在匹配檔名的話,** 則經常用在匹配目錄名稱。例如,scripts/**/*.js 這個 globs,可以匹配到 scripts/index.jsscripts/nested/index.js

取消匹配 !

src()dest() 等 API 第一個參數除了能接受 globs 字串外,也能接受由 globs 字串所組成的陣列。以底下的例子來說,除了在 node_modules/ 資料夾底下的 js 外,其他所有路徑底下的 js 都會被匹配到。

['**/*.js', '!node_modules/']

小結

本文是「以複製檔案為例」系列的第三篇,簡單提及了 globs 是什麼以及一些匹配字串的符號。明天將會去瞭解 node.js 中的 stream 觀念以及它的 pipe() API。

參考資料

官方

其他


上一篇
[試著把切版專案升級到 gulp4.0 吧] Day08 第一個 task:以複製檔案為例,談 task、src、dest、watch API
下一篇
[試著把切版專案升級到 gulp4.0 吧] Day10 第一個插件:以複製檔案為例,談 node.js 的 stream 與 pipe()
系列文
試著把切版專案升級到 gulp4.0 吧36
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言